package com.cn.wanxi.servlet;

import com.alibaba.fastjson.JSONObject;
import com.cn.wanxi.model.UserModel;
import com.cn.wanxi.service.IUserService;
import com.cn.wanxi.service.impl.UserServiceImpl;
import com.cn.wanxi.util.Tool;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebServlet("/register")
public class RegisterServlet extends HttpServlet {
    //    一般情况下，只要涉及到安全的 都用post
//    get的好处   速度快
//

    /**
     * servlet 层 主要是做什么事情的？  service   dao  -database
     * 得到前端的数据
     */
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//        得到前端传递到后台的数据
//        如果是form表单提交的数据getParameter("username");这里的key值对应页面的name
//        Integer aa = Integer.parseInt("fasdfa");
        String username = req.getParameter("username");
        String password = req.getParameter("password");
        String phone = req.getParameter("phone");
        String weight = req.getParameter("weight");
        String email = req.getParameter("email");
        String sex = req.getParameter("sex");
        String hobby = req.getParameter("hobby");
        String birthday = req.getParameter("birthday");
//        封装取得的数据
        UserModel userModel = new UserModel();
        userModel.setUsername(username);
        userModel.setPassword(password);
        userModel.setPhone(phone);
        userModel.setWeight(Tool.stringToFloat(weight));
        userModel.setEmail(email);
        userModel.setSex(sex);
        userModel.setHobby(hobby);
        userModel.setBirthday(birthday);

//        将数据返回到页面--谁接收  （ajax），如果没有Ajax  直接返回到页面
//        将字符串转换位json对象
//以后我们的服务逻辑层会进行扩展--多态
//如果扩展后，别人新增一个功能，不能修改已经写好的代码
//        接口--一般情况下，如果调用其他类的时候（除了工具类等)需要用到接口

//        UserService userService = new UserService();
//        如果每次都通过参数进行传递，传输过多，会影响开发效率
//        userService.add(username, password, phone);
        IUserService iUserService = new UserServiceImpl();
//        需要有一个反馈的值 success  error
        String result = iUserService.add(userModel);//新增

//        反馈给前端
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("result", result);
        resp.getWriter().println(jsonObject);

    }
}
